package br.ufrj.dcc.mapaviolencia.model;

import java.util.ArrayList;
import java.util.List;

import br.ufrj.dcc.mapaviolencia.util.LocalizacaoUtil;

import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;


public class Estado {

	public static final String NOME_ESTADO = "estado";
	public static final String SIGLA_ESTADO = "sigla_uf";
	private String nome;
	private String sigla;
	private List<Cidade> cidades = null;
	
	
	public Estado(String estado){
		this.nome = estado;
		BasicDBObject query = new BasicDBObject(NOME_ESTADO, estado);
		DBObject estadoDB = LocalizacaoUtil.collection.findOne(query);
		this.setSigla(estadoDB.get(SIGLA_ESTADO).toString());
		getCidades();
	}
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getSigla() {
		return sigla;
	}
	public void setSigla(String sigla) {
		this.sigla = sigla;
	}
	public List<Cidade> getCidades() {
		if(cidades == null){
			cidades = new ArrayList<Cidade>();
			BasicDBObject query = new BasicDBObject(SIGLA_ESTADO, sigla);
			List<String> cidadesDB = LocalizacaoUtil.collection.distinct(Cidade.NOME_CIDADE, query);
			for(String c : cidadesDB){
				cidades.add(new Cidade(c,this));
			}
		}
		return cidades;
	}
	public void setCidades(List<Cidade> cidades) {
		this.cidades = cidades;
	}
}
